Quality of Merge-Refactorings for Product Lines
نویسندگان
چکیده
In this paper, we consider the problem of refactoring related software products specified in UML into annotative product line representations. Our approach relies on identifying commonalities and variabilities in existing products and further merging those into product line representations which reduce duplications and facilitate reuse. Varying merge strategies can lead to producing several semantically correct, yet syntactically different refactoring results. Depending on the goal of the refactoring, one result can be preferred to another. We thus propose to capture the goal using a syntactic quality function and use that function to guide the merge strategy. We define and implement a quality-based mergerefactoring framework for UML models containing class and statechart diagrams and report on our experience applying it on three case-studies.
منابع مشابه
Optimizing Non-functional Properties of Software Product Lines by means of Refactorings
Today, software product line engineering concentrates on tailoring the functionality of programs. However, we and others observed an increasing interest in non-functional properties of products. For example, performance, power awareness, maintainability, and resource consumption are important nonfunctional properties in software development. Current product line techniques have the potential to...
متن کاملAlgebraic Laws for Feature Models
Software Product Lines (SPL) may be adopted by either bootstrapping existing software products into a SPL, or extending an existing SPL to encompass an additional software product. Program refactorings are usually applied for carrying out those tasks. The notion of SPL refactoring is an extension of the traditional definition of refactoring; it involves not only program refactorings, but also F...
متن کاملA Refactoring Tool for TTCN-3
Software is continuously growing in size and getting more and more complex while development cycles are getting shorter. The resulting software aging effect leads to a decay in software quality causing maintainability problems and bugs. Software engineering techniques like modularization, object-orientation, design patterns, aspect-oriented programming or refactoring have been developed to slow...
متن کاملLJAR: A Model of Refactoring Physically and Virtually Separated Features
Physical separation with class refinements and method refinements à la AHEAD and virtual separation using annotations à la #ifdef or CIDE are two competing groups of implementation approaches for software product lines with complementary advantages. Although both groups have been mainly discussed in isolation, we strive for an integration to leverage the respective advantages. In this paper, we...
متن کاملAutomatically Checking the Correctness of Feature Model Refactorings
Software Product Line evolution can be performed by refactorings, which involve not only program refactorings improving code structure, but also feature model (FM) refactorings in order to improve configurability. However, the current catalog of FM refactorings is not complete, and is difficult to propose new sound refactorings. Moreover, there is no guideline how to apply such catalog in a ref...
متن کامل